package com.zhuiyun.project.api.system.role.mapper;

import com.zhuiyun.project.api.system.role.entity.SysRole;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 角色表 数据层
 * 
 * @author ruoyi
 */
@Mapper
public interface SysRoleMapper
{
    /**
    * @Author hbx
    * @Description 根据条件分页查询角色数据
    * @Date 2023/6/22 10:19
    * @param role
    */
    public List<SysRole> selectRoleList(SysRole role);

    /**
    * @Author hbx
    * @Description 根据用户ID查询角色
    * @Date 2023/6/22 10:19
    * @param userId
    */
    public List<SysRole> selectRolePermissionByUserId(Long userId);

    /**
    * @Author hbx
    * @Description 查询所有角色
    * @Date 2023/6/22 10:19

    */
    public List<SysRole> selectRoleAll();

    /**
    * @Author hbx
    * @Description 根据用户ID获取角色选择框列表
    * @Date 2023/6/22 10:19
    * @param userId
    */
    public List<Long> selectRoleListByUserId(Long userId);

    /**
    * @Author hbx
    * @Description 通过角色ID查询角色
    * @Date 2023/6/22 10:20
    * @param roleId
    */
    public SysRole selectRoleById(Long roleId);

    /**
    * @Author hbx
    * @Description 根据用户ID查询角色
    * @Date 2023/6/22 10:20
    * @param loginName
    */
    public List<SysRole> selectRolesByLoginName(String loginName);

    /**
    * @Author hbx
    * @Description 校验角色名称是否唯一
    * @Date 2023/6/22 10:20
    * @param roleName
    */
    public SysRole checkRoleNameUnique(String roleName);

    /**
    * @Author hbx
    * @Description 校验角色权限是否唯一
    * @Date 2023/6/22 10:20
    * @param roleKey
    */
    public SysRole checkRoleKeyUnique(String roleKey);

    /**
    * @Author hbx
    * @Description 修改角色信息
    * @Date 2023/6/22 10:20
    * @param role
    */
    public int updateRole(SysRole role);

    /**
    * @Author hbx
    * @Description 新增角色信息
    * @Date 2023/6/22 10:20
    * @param role
    */
    public int insertRole(SysRole role);

    /**
    * @Author hbx
    * @Description 通过角色ID删除角色
    * @Date 2023/6/22 10:20
    * @param roleId
    */
    public int deleteRoleById(Long roleId);

    /**
    * @Author hbx
    * @Description 批量删除角色信息
    * @Date 2023/6/22 10:20
    * @param roleIds
    */
    public int deleteRoleByIds(Long[] roleIds);


}
